#include<stdio.h>
#include<sys/types.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/stat.h>
#include<string.h>

int main()
{
    int fd = open("log.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
    dup2(fd, 1);
    printf("hello zzx\n");

    return 0;
}


//int main()
//{
////    close(1);//关闭标准输出流
////    int fd1 =  open("log.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
////    printf("fd1: %d\n", fd1);
////    printf("hello world\n");
//
//     close(0);
//     int fd2 = open("data.txt", O_RDWR);
//     printf("fd2: %d\n", fd2);
//     char buff[64];
//     fgets(buff, 64, stdin);
//     printf("%s\n", buff);
//
//    return 0;
//}

//int main()
//{
//    int fd1 = open("data1.txt", O_WRONLY|O_CREAT|O_TRUNC);
//    int fd2 = open("data2.txt", O_WRONLY|O_CREAT|O_TRUNC);
//    int fd3 = open("data3.txt", O_WRONLY|O_CREAT|O_TRUNC);
//
//    printf("fd1:%d\nfd2:%d\nfd3:%d\n", fd1, fd2, fd3);
//    printf("\n");
//    
//    printf("stdin:%d\n", stdin->_fileno);
//    printf("stdout:%d\n", stdout->_fileno);
//    printf("stderr:%d\n", stderr->_fileno);
//
//    return 0;
//}

//#include<sys/stat.h>
//
//int main()
//{
//    umask(0);
//
//    int fd = open("data.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
//    //int fd = open("data.txt", O_WRONLY|O_CREAT|O_TRUNC);
//    
//    if(fd == -1)
//    {
//        perror("open");
//        return 1;
//    }
//
//    return 0;
//}

//#define ONE 1
//#define TWO (1 << 1)
//#define THREE (1 << 2)
//#define FOUR (1 << 3)
//
//void print(int flag)
//{
//    if(flag & ONE) printf("1\n");
//    if(flag & TWO) printf("2\n");
//    if(flag & THREE) printf("3\n");
//    if(flag & FOUR) printf("4\n");
//}
//
//int main()
//{
//    print(ONE);
//    printf("-----------\n");
//
//    print(ONE|TWO);
//    printf("-----------\n");
//     
//    print(ONE|TWO|THREE);
//    printf("-----------\n");
//    
//    print(ONE|TWO|THREE|FOUR);
//    printf("-----------\n");
//
//    return 0;
// 
// }
